﻿using System;
using System.Collections.Generic;

namespace GUI.BR
{
    using BLL;
    using EXT;
    using DAL.Entities;

    public partial class frmNCC : GUI.Danhmuc.ChitietDanhmuc.frmInputChitietDanhmuc
    {
        bool CorE;
        public frmNCC(bool CorE)
        {
            this.CorE = CorE;
            InitializeComponent();
        }

        private NCCBLL NCC_BLL = new NCCBLL();

        public bool ValiInput()
        {
            if (gleNhomNCC.EditValue == null)
            {
                MsgC.MsgWarning("Chưa chọn nhóm nhà cung cấp\n\n Vui lòng chọn nhóm nhà cung cấp");
                gleNhomNCC.Focus();
                return false;
            }
            if (txtMa.Text.Trim() == string.Empty)
            {
                MsgC.MsgWarning("Chưa nhập mã nhà cung cấp\n\n Vui lòng nhập mã nhà cung cấp");
                txtMa.Focus();
                return false;
            }

            var ma = txtMa.Text.Trim();

            while (ma.IndexOf("  ") >= 0)
            {
                ma = ma.Replace("  ", " ");
            }

            if (CorE)
            {
                if (NCC_BLL.IsExists(ma))
                {
                    MsgC.MsgWarning("Mã nhà cung cấp này đã tồn tại\n\n Vui lòng nhập mã nhà cung cấp khác");
                    txtMa.Focus();
                    return false;
                }
            }
            if (txtTen.Text.Trim() == string.Empty)
            {
                MsgC.MsgWarning("Chưa nhập tên nhà cung cấp\n\n Vui lòng nhập tên nhà cung cấp");
                txtTen.Focus();
                return false;
            }
            if (txtDiachi.Text.Trim() == string.Empty)
            {
                MsgC.MsgWarning("Chưa nhập địa chỉ nhà cung cấp\n\n Vui lòng nhập địa chỉ nhà cung cấp");
                txtDiachi.Focus();
                return false;
            }
            return true;
        }

        public void ResetInput()
        {
            gleNhomNCC.EditValue = null;
            txtMa.EditValue = null;
            txtTen.EditValue = null;
            txtDiachi.EditValue = null;
            txtDienthoai.EditValue = null;
            txtEmail.EditValue = null;
            txtFax.EditValue = null;
            txtTaikhoan.EditValue = null;
            txtMathue.EditValue = null;
            txtGhichu.EditValue = null;
            gleNganhang.EditValue = null;
            var x = DateTime.Now;
            txtMa.EditValue =   x.Day.ToString() +
                                x.Month.ToString() +
                                x.Year.ToString() +
                                x.Hour.ToString() +
                                x.Minute.ToString() +
                                x.Second.ToString();
            gleNhomNCC.Focus();
        }

        private void BindingNCC()
        {
            gleNhomNCC.EditValue = frmChititetNCC.DR["Id_NhomNCC"].GetGuid();
            txtMa.EditValue = frmChititetNCC.DR["Ma"].ToString();
            txtTen.EditValue = frmChititetNCC.DR["Ten"].ToString();
            txtDiachi.EditValue = frmChititetNCC.DR["Diachi"].ToString();
            txtDienthoai.EditValue = frmChititetNCC.DR["Dienthoai"].ToString();
            txtEmail.EditValue = frmChititetNCC.DR["Email"].ToString();
            txtFax.EditValue = frmChititetNCC.DR["Fax"].ToString();
            txtTaikhoan.EditValue = frmChititetNCC.DR["Taikhoan"].ToString();
            txtMathue.EditValue = frmChititetNCC.DR["Mathue"].ToString();
            txtGhichu.EditValue = frmChititetNCC.DR["Ghichu"].ToString();
            gleNganhang.EditValue = frmChititetNCC.DR["Id_Nganhang"].GetGuid();
            gleNhomNCC.Focus();
        }

        private void Load_NhomNCC()
        {
            var Danhmuc_BLL = new DanhmucBLL();
            var dt = Danhmuc_BLL.Danhmuc_Select_By_Kind_All_Vali("PhannhomK_NCC");
            if (dt.Rows.Count > 0)
            {
                gleNhomNCC.Properties.DataSource = dt;
            }
        }

        private void Load_Nganhang()
        {
            var Danhmuc_BLL = new DanhmucBLL();
            var dt = Danhmuc_BLL.Danhmuc_Select_By_Kind_All_Vali("Nganhang");
            if (dt.Rows.Count > 0)
            {
                gleNganhang.Properties.DataSource = dt;
            }
        }

        private void frmNCC_Load(object sender, EventArgs e)
        {
            Load_NhomNCC();
            Load_Nganhang();
            if (CorE)
            {
                ResetInput();
                Text = "Thêm nhà cung cấp";
            }
            else
            {
                BindingNCC();
                Text = "Sữa thông tin nhà cung cấp";
            }
        }

        public event MyEvent_LoadData MyEvent_LoadData_Chitiet = null;

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (ValiInput())
            {
                var NCC = new NCC();

                if (CorE)
                {
                    NCC.Id = Guid.NewGuid();
                }
                else
                {
                    NCC.Id = frmChititetNCC.DR["Id"].GetGuid();
                }
                NCC.Id_NhomNCC = gleNhomNCC.EditValue.GetGuid();

                if (CorE)
                {
                    var ma = txtMa.Text.Trim();

                    while (ma.IndexOf("  ") >= 0)
                    {
                        ma = ma.Replace("  ", " ");
                    }
                    NCC.Ma = ma.ToUpper();
                }
                else
                {
                    NCC.Ma = txtMa.Text;
                }
                NCC.Ten = txtTen.Text.Trim().ToUpperWords();

                NCC.Diachi = txtDiachi.Text.Trim().ToUpperWords();

                if (txtDienthoai.Text.Trim() != string.Empty)
                {
                    NCC.Dienthoai = txtDienthoai.Text.Trim();
                }

                if (txtFax.Text.Trim() != string.Empty)
                {
                    NCC.Fax = txtFax.Text.Trim();
                }

                if (txtEmail.Text.Trim() != string.Empty)
                {
                    NCC.Email = txtEmail.Text.Trim();
                }

                if (txtTaikhoan.Text.Trim() != string.Empty)
                {
                    NCC.Taikhoan = txtTaikhoan.Text.Trim().ToUpper();
                }

                if (gleNganhang.Text.ToString() != string.Empty)
                {
                    NCC.Id_Nganhang = gleNganhang.EditValue.GetGuid();
                }

                if (txtMathue.Text.Trim() != string.Empty)
                {
                    NCC.Mathue = txtMathue.Text.Trim().ToUpper();
                }

                if (txtGhichu.Text.Trim() != string.Empty)
                {
                    NCC.Ghichu = txtGhichu.Text.Trim().ToUpperFirst();
                }

                if (CorE)
                {
                    NCC.Show = true;
                }

                if (CorE)
                {
                    if (NCC_BLL.NCC_Insert(NCC))
                    {
                        MsgC.MsgOK("Thêm nhà cung cấp thành công");
                        if (MyEvent_LoadData_Chitiet != null)
                        {
                            MyEvent_LoadData_Chitiet(this, new ELoadData() { IsLoadData = true });
                        }
                        ResetInput();
                    }
                    else
                    {
                        MsgC.MsgWarning("Không thể kết nối đến CSDL\n\n Vui lòng kiểm tra kết nối đến Server");
                    }
                }
                else
                {
                    if (NCC_BLL.NCC_Update(NCC))
                    {
                        MsgC.MsgOK("Cập nhật thông tin nhà cung cấp thành công");
                        if (MyEvent_LoadData_Chitiet != null)
                        {
                            MyEvent_LoadData_Chitiet(this, new ELoadData() { IsLoadData = true });
                        }
                        Close();
                    }
                    else
                    {
                        MsgC.MsgWarning("Không thể kết nối đến CSDL\n\n Vui lòng kiểm tra kết nối đến Server");
                    }
                }
            }
        }

        private void gleNhomNCC_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            if (e.Button.Index == 1)
            {
                var frm = new GUI.Danhmuc.frmPhannhomK_NCC();
                frm.MyEvent_LoadData_Chitiet += new MyEvent_LoadData(frm_MyEvent_LoadData_Chitiet);
                frm.Show();
            }
        }

        private void frm_MyEvent_LoadData_Chitiet(object sender, ELoadData e)
        {
            if (e.IsLoadData)
            {
                Load_NhomNCC();
            }
        }

        private void gleNganhang_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            if (e.Button.Index == 1)
            {
                var frm_ = new GUI.Danhmuc.frmNganhang();
                frm_.MyEvent_LoadData_Chitiet += new MyEvent_LoadData(frm__MyEvent_LoadData_Chitiet);
                frm_.Show();
            }
        }

        private void frm__MyEvent_LoadData_Chitiet(object sender, ELoadData e)
        {
            Load_Nganhang();
        }
    }
}
